package com.wang.jmonkey.modules.system.api;

import com.wang.jmonkey.common.annotation.Log;
import com.wang.jmonkey.common.result.HttpResult;
import com.wang.jmonkey.modules.system.model.dto.SystemJobDto;
import com.wang.jmonkey.modules.system.model.entity.SystemJobEntity;
import com.wang.jmonkey.modules.system.service.SystemJobService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 岗位信息(SystemJob)表控制层
 *
 * @author HeJiawang
 * @since 2021-07-25 08:05:26
 */
@RestController
@RequestMapping("/job")
public class SystemJobApi {

    /**
     * 服务对象
     */
    @Autowired
    private SystemJobService service;

    /**
     * 查询列表
     * @param deptId 检索条件
     * @return 列表数据
     */
    @Log("岗位管理——查询列表")
    @GetMapping("/list/{deptId}")
    public HttpResult<List<SystemJobDto>> list (@PathVariable Long deptId) {
        return new HttpResult<>(service.list(deptId));
    }

    /**
     * 新增岗位信息
     * @param job 岗位信息
     * @return true 新增成功
     */
    @Log("岗位管理——新增岗位信息")
    @PostMapping(value = "/save")
    public HttpResult<Void> save(@RequestBody @Validated SystemJobEntity job) {
        return new HttpResult<Void>().setSuccess(service.save(job));
    }

    /**
     * 修改岗位信息
     * @param job 岗位信息
     * @return true 修改成功
     */
    @Log("岗位管理——修改岗位信息")
    @PutMapping(value = "/update")
    public HttpResult<Void> update(@RequestBody @Validated SystemJobEntity job) {
        return new HttpResult<Void>().setSuccess(service.updateById(job));
    }

    /**
     * 删除岗位信息
     * @param id 岗位信息id
     * @return true 删除成功
     */
    @Log("岗位管理——删除岗位信息")
    @DeleteMapping(value = "/remove/{id}")
    public HttpResult<Void> remove(@PathVariable Long id) {
        return new HttpResult<Void>().setSuccess(service.removeById(id));
    }

}
